Contact centers, such as Automatic Call Distribution or ACD systems, are employed by many enterprises to service customer contacts. A typical contact center includes a switch and/or server to receive and route incoming packet-switched and/or circuit-switched contacts and one or more resources, such as human agents and automated resources (e.g., Interactive Voice Response (IVR) units), to service the incoming contacts. Contact centers distribute contacts, whether inbound or outbound, for servicing to any suitable resource according to predefined criteria. Generally, the only condition that results in a contact not being delivered to an available agent is that there are no contacts waiting to be handled.
Global contact centers have been introduced to use low cost agents in one country to service customers in another country. In global contact centers, the agents (or agent domain) can be located in one or more countries, such as India and/or the Philippines, with the customers (or caller domain) being located in a different country, such as the United States. The agent and caller domains are separated by a, commonly packet-switched, Wide Area Network or WAN. What is variable is the placement of the ACD logic, agent state information, audible feedback devices, logical call queues, and physical call queues. “Physical call queue” refers to the physical endpoints or ports to which the voice calls are connected while the caller is waiting in queue for servicing by an agent.
To maintain low toll charges and preserve bandwidth, different contact center architectures have been employed.
In one architecture, the ACD logic, agent state, audible feedback, and logical and physical call queues are all maintained in the caller domain. Calls are delivered to IP agent stations over the WAN when the agent becomes available to service the call. When a WAN link goes down and the agent stations attempt simultaneously to re-register with the ACD logic, the concomitant traffic on the link can overwhelm the capacity of the IP connection, thereby needlessly and substantially delaying the registration of the stations and servicing of enqueued contacts by the agents.
In another architecture, the ACD logic, agent state, audible feedback, and logical and physical call queues are all maintained in the agent domain. For example, this architecture requires calls from the United States to be queued in Asia. While the calls are queued, music is played to the callers, using up limited WAN bandwidth. Moreover, where multiple ACD's are located in Asia and a call enqueued at a first ACD is to be transferred over the WAN to a second ACD, the voice, which is compressed once over the WAN when it is forwarded to the first ACD, is compressed a second time to be transferred to the second ACD. The multiple compressions can cause an unacceptably low voice quality. A circuit-switched trunk can be employed in this architecture to handle calls between the caller and agent domain and/or between agent domains but such trunks are prohibitively expensive.
In another architecture disclosed in U.S. Pat. No. 5,524,147, ACD's are located in both the caller and agent domains. The call is held or parked at the ACD in the caller domain while a placeholder or proxy is placed in a queue in each ACD in the agent domain. The ACD in the caller domain holding the call provides audible caller feedback and maintains the physical call queue, and each ACD in the agent domain provides the ACD logic, agent state, and logical call queues. When an agent is available to service the call, the call is physically moved to the appropriate ACD in the agent domain. This approach is not only costly but also can be inefficient for the contact center agents. In large global contact centers with multiple ACD's in the agent domain, there is a high possibility that two or more agents in different ACD's can become available to service the call at approximately the same time. Glare can result in which an attempt is made to transfer the same call to different ACDs in the agent domain, thereby creating ghost calls and causing one or more agents to wait for a call that never arrives. Moreover, the architecture can be wasteful of scarce processing resources in the various ACD's. Not only does logically or physically queuing each and every call at multiple location requires the ACD's collectively to do much more work than simply logically and physically queuing the call at one ACD but also call reporting and managing is made much more difficult.